﻿using Shop.Data.Entities;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Shop.Data.Business
{
    public class ProductoBusiness
    {
        public static IList<Producto> GetListByFilter(string filter)
        {
            using (ShopDbContext ctx = new ShopDbContext())
            {
                return ctx.Productos.Where(t => t.nombre.Contains(filter)).ToList();
            }


        }

        public static Producto Create(Producto producto)
        {
            using (ShopDbContext ctx = new ShopDbContext())
            {
                Producto productoDB = ctx.Productos.Add(producto);
                ctx.SaveChanges();
                return productoDB;
            }
        }
         public static Producto Update(Producto producto)
        {
            using (ShopDbContext ctx = new ShopDbContext()) {

                ctx.Entry(producto).State = EntityState.Modified;
                ctx.SaveChanges();
                return producto;
            
            }
        }
         public static Producto GetById(Guid id)
         {

             using (ShopDbContext ctx = new ShopDbContext())
             {

                 Producto p = ctx.Productos.Find(id);
                 if (p == null) 
                 {
                     throw new Exception("Cliente GetById Not");
                 }
                 return p;
             }
         
         }

         public static void Delete(Guid id) 
         {

             using (ShopDbContext ctx = new ShopDbContext())
             {
                 Producto p = ctx.Productos.Find(id);

                 if(p==null)
                 {
                     throw new Exception("Cliente no Tiene Data");

                 }
                 ctx.Productos.Remove(p);
                 ctx.SaveChanges();
       
             }
         }
    }
}
